var base_url;

$(document).ready(function() {
    base_url=$('#base_url').html();
    console.log('INFO: ************** MOVIL PRINCIPAL CONTROLLER ****************');

    $('#misPasajesCountText').text(localStorage.misPasajesCount);
    $('#misReservasCountText').text(localStorage.misReservasCount);

    $('#btn_login').click(function() {
        if(validateLogin()){
            validateUserDataAjax();
        }
    });

    $('#btn_logout').click(function() {
        localStorage.clear();
    });

    $('#btn_misReservas').click(function() {
        getReservasClienteMovilAjax();
    });

    $('#btn_misPasajes').click(function() {
        getPasajesClienteMovilAjax();
    });

});

function getCabeceraSistemaAjax(){
    var idUsuario = localStorage.idUsuario;
    var method = WS_SERVER+'operaciones/cabecera/idUsuario/' +idUsuario + '/format/json';
    //var method = WS_SERVER+'operaciones/cabecera/idUsuario/1/format/json';
    console.log("WS: "+method);
    
    $.ajax({
        type: 'get',
        url: method,
        dataType: 'json',
        data: '',
        cache: false,
        success: function(data){
            if(data==null){
                alert('Entro null getCabeceraSistemaAjax1. No hay información para su consulta.');
            } else {
                localStorage.misPasajesCount=data[0].pasajes;
                localStorage.misReservasCount=data[1].reservas;
                $('#misPasajesCountText').text(localStorage.misPasajesCount);
                $('#misReservasCountText').text(localStorage.misReservasCount);
            }

        },
        error: function(jqXHR, textStatus, errorThrown){
            console.log("ERROR: Ajax Request: "+textStatus+", "+errorThrown);
            console.log("ERROR_METHOD: getCabeceraSistemaAjax");
            console.log("ERROR_WS: "+method);
            
            alert('Entro null getCabeceraSistemaAjax2. No hay información para su consulta.');
        }
    });
}

function getReservasClienteMovilAjax(){
    var idUsuario = localStorage.idUsuario;
    var method = WS_SERVER+'operaciones/reservas/idUsuario/' +idUsuario + '/format/json';
    //var method = WS_SERVER+'operaciones/reservas/idUsuario/1/format/json';
    console.log("WS: "+method);

    $.ajax({
        type: 'get',
        url: method,
        dataType: 'json',
        data: '',
        cache: false,
        success: function(data){
            if (data==null){
                $('#lista_reservas').html("No hay información registrada para su consulta.")
            } else {
                var dataTable= createReservaMovilBusquedaTable(data);
                $('#lista_reservas').html(dataTable).trigger('create');
            }
        },
        error: function(jqXHR, textStatus, errorThrown){
            console.log("ERROR: Ajax Request: "+textStatus+", "+errorThrown);
            console.log("ERROR_METHOD: getReservasClienteMovilAjax");
            console.log("ERROR_WS: "+method);
            
            $('#lista_reservas').html("No hay información registrada para su consulta.")
        }
    });
}

function getPasajesClienteMovilAjax(){
    var idUsuario = localStorage.idUsuario;
    var method = WS_SERVER+'operaciones/pasajes/idUsuario/' +idUsuario + '/format/json';
    //var method = WS_SERVER+'operaciones/pasajes/idUsuario/1/format/json';
    console.log("WS: "+method);

    $.ajax({
        type: 'get',
        url: method,
        dataType: 'json',
        data: '',
        cache: false,
        success: function(data){
            if (data==null){
                $('#lista_pasajes').html("No hay información registrada para su consulta.")
            } else {
                var dataTable= createPasajeMovilBusquedaTable(data);
                $('#lista_pasajes').html(dataTable).trigger('create');
            }
        },
        error: function(jqXHR, textStatus, errorThrown){
            console.log("ERROR: Ajax Request: "+textStatus+", "+errorThrown);
            console.log("ERROR_METHOD: getPasajesClienteMovilAjax");
            console.log("ERROR_WS: "+method);
            
            $('#lista_pasajes').html("No hay información registrada para su consulta.")
        }
    });
}

function createReservaMovilRow(cont, fecha, hora, ruta, numAsientos, monto) {
    var cad="<div data-role='collapsible' data-collapsed='true'>";
    cad+="<h3>Reserva "+cont+"</h3>";
    cad+="<div class='row'>";
    cad+="<div class='span4'><strong>Fecha:</strong> "+fecha+"</div>";
    cad+="<div class='span4'><strong>Hora:</strong> "+hora+"</div>";
    cad+="<div class='span4'><strong>Ruta:</strong> "+ruta+"</div>";
    cad+="<div class='span4'><strong>Num. Asientos:</strong> "+numAsientos+"</div>";
    cad+="<div class='span4'><strong>Monto:</strong> "+SOLES+monto+"</div>";
    cad+="</div></div>";
    return cad;
}

function createPasajeMovilRow(cont, fecha, hora, ruta, numAsientos, monto) {
    var cad="<div data-role='collapsible' data-collapsed='true'>";
    cad+="<h3>Compra "+cont+"</h3>";
    cad+="<div class='row'>";
    cad+="<div class='span4'><strong>Fecha:</strong> "+fecha+"</div>";
    cad+="<div class='span4'><strong>Hora:</strong> "+hora+"</div>";
    cad+="<div class='span4'><strong>Ruta:</strong> "+ruta+"</div>";
    cad+="<div class='span4'><strong>Num. Asientos:</strong> "+numAsientos+"</div>";
    cad+="<div class='span4'><strong>Monto:</strong> "+SOLES+monto+"</div>";
    cad+="</div></div>";
    return cad;
}

function createReservaMovilBusquedaTable(reservas) {
    var cad="";
    var cont= 1;
    reservas.forEach(function(item) {
        var ruta= createViajeText(item.terminalOrigen, item.terminalDestino);
        cad+=createReservaMovilRow(cont, item.fecha, item.hora, ruta, item.numAsientos, item.montoPagar);
        cont++;
    });
    return cad;
}

function createPasajeMovilBusquedaTable(reservas) {
    var cad="";
    var cont= 1;
    reservas.forEach(function(item) {
        var ruta= createViajeText(item.terminalOrigen, item.terminalDestino);
        cad+=createPasajeMovilRow(cont, item.fecha, item.hora, ruta, item.numAsientos, item.montoPagar);
        cont++;
    });
    return cad;
}

function validateLogin() {
    ocultarMensajeError('#mensajeControl1');
    var result = true;
    result =result &&  $.trim($("#textinput1").val()).length > 0;
    if (!result) {
        mostrarMensajeError('#mensajeControl1', MENSAJE_ERROR_USERNAME);
        return result;
    }
    result =result &&  $.trim($("#textinput2").val()) != '' ;
    if (!result) {
        mostrarMensajeError('#mensajeControl1', MENSAJE_ERROR_PASSWORD_VACIO);
        return result;
    }
    result =result &&  $.trim($("#textinput2").val()).length >= 4;
    if (!result) {
        mostrarMensajeError('#mensajeControl1', MENSAJE_ERROR_PASSWORD_CANTIDAD);
        return result;
    }
    return result;
}

function validateUserDataAjax() {
    var username =$("#textinput1").val();
    var password = $("#textinput2").val();
    
    var method = WS_SERVER+'usuario/isUser/username/' + username + '/password/' + password + '/format/json';
    //var method = WS_SERVER+'usuario/isUser/username/carlosCharz/password/12345678/format/json';
    console.log("WS: "+method);

    $.ajax({
        type: 'get',
        url: method,
        dataType: 'json',
        data: '',
        cache: false,
        success: function(data){
            if (data!="-1"){
                localStorage.idUsuario =data;
                getCabeceraSistemaAjax();
                callUrlFromJS('mobile#sistema');
            } else {
                ocultarMensajeError('#mensajeControl1');
                mostrarMensajeError('#mensajeControl1', MENSAJE_ERROR_LOGIN_DATA_INCORRECTA);
            }
        },
        error: function(jqXHR, textStatus, errorThrown){
            console.log("ERROR: Ajax Request: "+textStatus+", "+errorThrown);
            console.log("ERROR_METHOD: validateUserDataAjax");
            console.log("ERROR_WS: "+method);
            
            ocultarMensajeError('#mensajeControl1');
            mostrarMensajeError('#mensajeControl1', MENSAJE_ERROR_LOGIN_DATA_INCORRECTA);
        }
    });
}

function mostrarMensajeError(id, mensaje) {
    $(id).html(mensaje);
    $(id).show();
}

function ocultarMensajeError(id) {
    $(id).html('');
    $(id).hide();
}

/*function getCabeceraSistemaAjax(){
    var method = base_url+'mobile/getCabeceraSistemaAjax';

    var parametros = {
        'idUsuario' : localStorage.idUsuario
    };

    $.ajax({
        type: 'get',
        url: method,
        dataType: 'json',
        data: parametros,
        cache: false,
        success: function(data){
            if(data==null){
                alert('Entro null getCabeceraSistemaAjax. No hay información para su consulta.');
            } else {
                localStorage.misPasajesCount=data[0].pasajes;
                localStorage.misReservasCount=data[1].reservas;
                $('#misPasajesCountText').text(localStorage.misPasajesCount);
                $('#misReservasCountText').text(localStorage.misReservasCount);
            }

        },
        error: function(jqXHR, textStatus, errorThrown){
            console.log("ERROR: Ajax Request: "+textStatus+", "+errorThrown);
        }
    });
}*/

/*function getReservasClienteMovilAjax(){
    var method = base_url+'mobile/getReservasAjax';

    var parametros = {
        'idUsuario': localStorage.idUsuario
    };

    $.ajax({
        type: 'get',
        url: method,
        dataType: 'json',
        data: parametros,
        cache: false,
        success: function(data){
            if (data==null){
                //alert('Entro null getReservasAjax. No hay información para su consulta.');
                $('#lista_reservas').html("No hay información registrada para su consulta.")
            } else {
                var dataTable= createReservaMovilBusquedaTable(data);
                $('#lista_reservas').html(dataTable).trigger('create');
            }
            console.log(data);
        },
        error: function(jqXHR, textStatus, errorThrown){
            console.log("ERROR: Ajax Request: "+textStatus+", "+errorThrown);
        }
    });
}*/

/*function getPasajesClienteMovilAjax(){
    var method = base_url+'mobile/getPasajesAjax';

    var parametros = {
        'idUsuario': localStorage.idUsuario
    };

    $.ajax({
        type: 'get',
        url: method,
        dataType: 'json',
        data: parametros,
        cache: false,
        success: function(data){
            if (data==null){
                //alert('Entro null getPasajesAjax. No hay información para su consulta.');
                $('#lista_pasajes').html("No hay información registrada para su consulta.")
            } else {
                var dataTable= createPasajeMovilBusquedaTable(data);
                $('#lista_pasajes').html(dataTable).trigger('create');
            }
            console.log(data);
        },
        error: function(jqXHR, textStatus, errorThrown){
            console.log("ERROR: Ajax Request: "+textStatus+", "+errorThrown);
        }
    });
}*/

/*function validateUserDataAjax() {
    var method = base_url+'website/getIsUserAjax';

    var parametros = {
        'username': $("#textinput1").val(),
        'password': $("#textinput2").val()
    };

    $.ajax({
        type: 'get',
        url: method,
        dataType: 'json',
        data: parametros,
        cache: false,
        success: function(data){
            if (data!="-1"){
                localStorage.idUsuario =data;
                getCabeceraSistemaAjax();
                callUrlFromJS('mobile#sistema');
            } else {
                ocultarMensajeError('#mensajeControl1');
                mostrarMensajeError('#mensajeControl1', MENSAJE_ERROR_LOGIN_DATA_INCORRECTA);
            }
        },
        error: function(jqXHR, textStatus, errorThrown){
            console.log("ERROR: Ajax Request: "+textStatus+", "+errorThrown);
        }
    });
}*/